從里々移行至YAYA †本詞條主要是面向想從里々SHIORI移行至YAYA的人。 里々移行至YAYA的好處 †編程能力較強,人格對話以外的部份的編寫會變得容易。 注意點 †
需要準備的東西 †
嘗試編寫YAYA 辭書 †以起動事件為例舉出來看看。 基本 †
里々就會如此編寫。
有些不明的符號,我們逐一看看吧。
此外和里々不同YAYA不會自動插入等待。想插入等待時請以Sakura Script記入。
Sakura Script除了YAYA以外的SHIORI也能共通的關係,就不在本詞條說明了。 符合最初寫好事件名稱、內容以「{}」圍起來的編寫規則的話寫成這樣 OnBoot { "\0\s[0]いっちばーん。\e" } 甚至寫成這樣也沒問題。 OnBoot { "\0\s[0]いっちばーん。\e" } OnBoot和{之間的空白・換行有沒有也沒關係。[Tab]也可以。 OnBoot{"\0\s[0]いっちばーん。\e"} 基本上""之外的空白或[Tab]、換行會被無視、 OnBoot { "\0\s[0]いっちばーん。\e" } 寫成這樣也沒問題。 【ここ】OnBoot【ここ】{【ここ】"\0\s[0]いっちばーん。\e"【ここ】}【ここ】 上面的【ここ】的位置中的空白(半形空白、全形空白、[Tab])或換行填多少個沒關係。 換行 †
里々會把辭書中對話的換行輸出,但YAYA必須使用Sakura Script的換行標籤才能換行。
「像這樣辭書中沒換行很難看!」…的話 OnBoot { "\0\s[0]改行\n/ します。\e" } 像這樣在行末加入「/」就就可以換行。 OnBoot { "\0\s[0]/ 改行\n/ します。/ \e" }
要注意用" "或' '圍起來的時候行末沒加入「/」就換行的話就會出現錯誤。(但不適用就後面所述的Heredoc格式) Heredoc †「每個行末都要加入/太麻煩了……。」 OnBoot { <<" \0\s[0] 改行\n します。 \e ">> } 隨機選擇單詞或文章 †里々中會從多個同一事件中隨機選擇一個執行。 *OnBoot :こんにちはー。 *OnBoot :おっすー。 *OnBoot :やっほー。 YAYA中這樣做的話會出現錯誤而起動不了。 OnBoot { "\0\s[0]こんにちはー。\e" "\0\s[0]おっすー。\e" "\0\s[0]やっほー。\e" } YAYA在{ }中以" "或' '圍起來的字串如有多個存在時,會在當中隨機選擇一個。 OnBoot { "\0\s[0]こんにちはー。\e" ; "\0\s[0]おっすー。\e" ; "\0\s[0]やっほー。\e" }
OnBoot { "\0\s[0]" -- "こんにちはー。" "おっすー。" "やっほー。" -- \e } 這樣寫也可以。
てんき { "きょうは"//←<1>這2個中會選一個 "明日は"//←<2> -- "晴れ"//←(1)這4個中會選一個 "雨"//←(2) "曇り"//←(3) "雷"//←(4) -- "です。"//←只有1個時這個必定會選中 } 這樣編寫時 OnBoot : nonoverlap { "\0\s[0]" -- "こんにちはー。" "おっすー。" "やっほー。" -- \e } 請在事件名稱後加入「 : nonoverlap」。同樣的字串不會再連續被選中。 另外、里々中能像這樣編寫在另一位置(單詞組)中取出單詞 * :(季節)はいいね~ :どの季節でも言ってるジャン @季節 春 夏 秋 冬 同樣的事在YAYA做就會是這樣子。 Talk { "\0\s[0]%(季節)はいいね~\w9\1\s[10]どの季節でも言ってるジャン\e" } 季節 { "春" "夏" "秋" "冬" } 對話中記入「%(季節)」又或是「%季節」時,就能從叫「季節」的函數中取得結果。 Talk { "\0\s[0]" -- "春" "夏" "秋" "冬" -- "はいいね~\w9\1\s[10]どの季節でも言ってるジャン\e" } 寫成這樣也可以。 變數 †會用的人就用,不用的人就可能完全不用的就是變數。 字串和數値 †YAYA的變數有字串和數値二種。(正確來說有整數、實數(real number)、字串3種) 変数 = 1 這樣代入時変数的內容為數値的「1」 変数 = "1" 這樣用" "或' '圍起來的代入時変数的內容會變為字串的「1」。
全域和局域 †_変数名 名稱以「_」開頭的為局域變數 変数名 開頭沒有「_」為全域變數。 ローカル変数テスト { { _変数 = 1 } 結果 = _変数 } 這樣寫的話「_変数」從深層離開到淺層時就被消除的關係「結果」中將會是空的。 ローカル変数テスト { _変数 = "" { _変数 = 1 } 結果 = _変数 } 這樣寫的話「_変数」從淺層→深層→淺層…出來時,因為最初的淺層中有使用(宣告)的關係所以從深層回到淺層時「_変数」則不會被消除,「結果」中就會是1。 代入變数 †立起給禮物的旗子(flag)為例。
就這樣。簡單。
【ここ】的部分輸入了空白也沒關係。
不是數値時必須以" "或' '圍起來。 プレゼントした { プレゼント = 花束 "\0\s[0]わーいありがとう!\e" } 不小心寫成這樣的話「プレゼント」中就會變成空的了。 *プレゼントした $プレゼント【タブ】(花束) :わーいありがとう! 這裡里々和最初的例子相反的關係可能會有點混亂吧。 計算變數 †
プレゼントした { 好感度++ "\0\s[0]ユーザーさんだいすき!\e" } 「好感度++」是「好感度增加1」的意思,和「好感度=好感度+1」同義。 里々和一樣,文字間也可加算。 プレゼント = "花" + "束" 這樣寫時變數「プレゼント」中會變成「"花束"」。 プレゼントした { プレゼント="花束" "\0\s[0]わーい\w6%(プレゼント)だー!\w9\w9ありがとう!\e" } 對話框中會顯示「わーい花束だー!ありがとう!」。 プレゼント,"花束",, 有像這樣的一行話就是儲存成功了。 プレゼント,1,, 像這樣變數中的數字沒有以" "圍起來。 R0、S0、A0等在YAYA中的寫法 †全部變成半角。和里々不同,不寫成全角。
舊範本的話就是reference0 reference1 reference2 ..
SAORI的使用方法請參照「SAORI」條目。
就如所見的是局域變數。 像ssu所做的事 †除了「條件分支」、「比較」和「計算」會用不一樣的方法達成外,
請參考関数用途別一覧。 SAORI †使用方法 †
不需要像里々那樣把要用的SAORI在事前設定。 FUNCTIONEX( 'saori\mciaudio.dll' , 'load' , '鳥の詩.mp3' ) 就這樣寫。 SAORI( 'mciaudio.dll' , 'load' , '鳥の詩.mp3' ) SAORI( 'mciaudio.dll' , 'play' ) 不用「FUNCTIONEX」而用「SAORI」也可以。 返回值(Result) †SAORI執行函數後會返回的值。 "\0\s[0]クリップボードにある文字を取り出します。\n「%(FUNCTIONEX( 'saori\textcopy.dll' , 'コピーする文字' ))」\e" 用一個變數儲存起來再用也可。 変数 = FUNCTIONEX( 'saori\textpaste.dll' ) Result就這樣在對話框中顯示的話會有困擾時就適當地把它代入到局域變數中吧。 返回值(Value[n]) †就如上面所寫里々用「S0 S1 S2 ..」而YAYA則以「valueex0 valueex1 valueex2 ...」編寫。 詳細請看這些條目。 ☆顯示現在時間 †請參照システム辞書/yaya_shiori3.dic - 時刻系関数。 時間をおしえる { "\0\s[0]ただいま%(hour)時%(minute)分%(second)秒で~す。\e" } 「不能像里々那樣用日文編寫的話不要ー」的人可以參考範本自己編寫也可以。 年 { GETTIME[0] } 月 { GETTIME[1] } 日 { GETTIME[2] } 分 { GETTIME[5] } 秒 { GETTIME[6] } 時間をおしえる { "\0\s[0]ただいま%(時)時%(分)分%(秒)秒で~す。\e" } 曜日以漢字表記的方法在這裡。(已在SimpleYAYAテンプレート中刊載) ☆計時器 †「$○○タイマ【タブ】秒数」用YAYA寫。 5秒待たせるイベント { "\0\s[0]それでは5秒お待ち下さい。\e" SHIORI3FW.SetDelayEvent( '5秒待った' , 5 ) } 5秒待った { "\0\s[0]お待たせしました。\e" } replace.txt †用#define也可做到同樣的事,但要注意不會失敗。 ☆replace_after.txt †用OnTranslate或OnTranslateInternal事件可以做到。
像Φ那樣把危險的符號無效化 †和里々一様、YAYA也有在對話中不能編寫的符號。 參考這些網頁,查找想編寫的符號的上位3位元(上面的網頁的横軸的編號)和上位4位元(縱軸),以 CHR(0x(上位3位元)(上位4位元)) 編寫。 例如「1」的話就是 CHR(0x31) 必須以半角編寫。
記号表示テスト { "\0\s[0]記号「%(CHR(0x22))」をバルーンに表示\e" } 注釋 †把#替換為//即可。
也可放到這個位置。 OnBoot { "\0\s[0]こんにちはー。\e"// 起動トーク } 以「/*」可「*/」圍起來的也會被注釋掉。 /* 起動イベント 一番最初に起動した時呼ばれる */ OnBoot { "\0\s[0]こんにちはー。\e" } YAYA比里々容易注釋,也方便使用。 |